package cc.rengu.igas.momp.common.dao;

import cc.rengu.igas.momp.common.entity.TMStatMfdMchnt;

import java.util.List;

/**
 * 手续费减免活动商户统计表数据库操作接口定义
 *
 * @author Jinan Liu
 * @version 1.0.0
 * @date 2020/4/20 22:30
 */

public interface TMStatMfdMchntMapper {

    /**
     * 使用主键查询手续费减免活动商户统计表数据数据库操作接口定义
     *
     * @param instId          法人机构号
     * @param mcNo            营销活动编号
     * @param ruleIndex       规则顺序号
     * @param mchntNo         商户编号
     * @param periodStartDate 统计周期起始日期
     * @param periodEndDate   统计周期结束日期
     * @return cc.rengu.igas.momp.common.entity.TMStatMfdMchnt 手续费减免活动商户统计表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/20 23:31
     */
    TMStatMfdMchnt selectMchntFeeDiscountMchntStatisticsByPK(String instId, String mcNo, String ruleIndex, String mchntNo, String periodStartDate, String periodEndDate) throws Exception;

    /**
     * 使用法人机构号 活动编号，商户号查询手续费减免活动商户统计表数据
     *
     * @param instId   法人机构号
     * @param mcNo     营销活动编号
     * @param mchntNo  商户编号
     * @param nowtDate 现在日期
     * @return cc.rengu.igas.momp.common.entity.TMStatMfdMchnt 手续费减免活动商户统计表
     * @throws Exception 异常信息
     * @author JL Pang
     * @date 2020/9/16
     */
    List<TMStatMfdMchnt> selectMFDiscountMchntStatisticsByinstIdMcNoMchntNo(String instId, String mcNo, String mchntNo, String nowtDate) throws Exception;

    /**
     * 更新手续费营销活动商户统计表T_M_STAT_MFD_MCHNT中的统计结束日期stat_end_date
     *
     * @param tmStatMfdMchnt 手续费减免活动商户统计表入参
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL Pang
     * @date 2020/9/16
     */
    int updateMfdEndDate(TMStatMfdMchnt tmStatMfdMchnt) throws Exception;

    /**
     * 查询当前日期所在的营销活动商户统计数据
     *
     * @param instId    法人机构号
     * @param mcNo      营销活动编号
     * @param ruleIndex 规则顺序号
     * @param mchntNo   商户编号
     * @param txnDate   交易日期
     * @return cc.rengu.igas.momp.common.entity.TMStatMfdMchnt 手续费减免活动商户统计表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/9/15 23:31
     */
    TMStatMfdMchnt selectNowPeriodDateTMStatMfdMchnt(String instId, String mcNo, String ruleIndex, String mchntNo, String txnDate) throws Exception;

    /**
     * 插入营销活动商户统计表数据
     *
     * @param tmStatMfdMchntList 手续费减免活动商户统计表入参
     * @return int 返回码
     * @throws Exception 异常信息
     * @author JL Pang
     * @date 2020/10/29
     */
    int insertNewStatMfdMchntData(List<TMStatMfdMchnt> tmStatMfdMchntList) throws Exception;

    /**
     * 使用主键查询手续费减免活动商户统计表累计优惠金额数据库操作接口实现
     *
     * @param instId  法人机构号
     * @param mchntNo 商户编号
     * @return cc.rengu.igas.momp.common.entity.TMStatMfdMchnt 手续费减免活动商户统计表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2021/5/28 14:55
     */
    TMStatMfdMchnt selectMchntFeeTotalAmtMchntStatistics(String instId, String mchntNo) throws Exception;
}
